# 短信任务队列
import logging

from celery_tasks.main import celery_app
from celery_tasks.sms.yuntongxun.ccp_sms import CCP
from users.constants import RETRY_BACKOFF_NUM

logger = logging.getLogger("django")


# 使用装饰器装饰异步任务，传入name来指定任务的名字
@celery_app.task(bind=True, name='send_sms_code', retry_backoff=RETRY_BACKOFF_NUM)
def send_sms_code(self,sms_code, interval, template_id):
    """
    发送短信验证码
    :param sms_code 短信验证码
    :param interval 有效时长
    :param template_id 短信模板id
    :return 返回发送短信的结果，成功为0，失败为1
    """
    logger.info("进入信息发送任务的方法")
    # 发送短信,/ 会得到浮点数，//得到整数
    try:
        result = CCP().send_template_sms('18344561746', [sms_code, interval], template_id)
        logger.info("信息发送的结果%s" % result)
    except Exception as  e:

        self.retry(exc=e, max=RETRY_BACKOFF_NUM)

    return result
